package cn.xiaolang.function.java_jvm;

/**
 * 编译后进行反汇编
 * <p>$javac JvmAnalysisSample</p>
 * <p>$javap -v JvmAnalysisSample.class </p>
 *
 * @author fuhw/Dean
 * @date 2019-10-18
 */
public class JvmAnalysisSample {

    // 静态变量
    private static final int k = 0;

    // 成员变量
    private Object obj = new Object();

    // volatile 线程可见性，变量读写操作前后添加内存屏障
    private volatile int sortB = 1;



    public void methodOne(int i) {

        // 局部变量
        int j = 0;
        int sum = i + j;
        Object newObj = obj;
        methodTow();
        return;
        // 正常
        // 不正常
    }

    public void methodTow() {
        return;
    }
    /**
     * Exception in thread "main" java.lang.StackOverflowError
     * <p>验证一个方法对应一个栈帧<p/>
     */
    public void methodThree() {
        methodThree();
    }



    public static void main(String[] args) {
    }
}
